/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entidades;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author Andres
 */
@Entity
@Table(name = "CARRO", catalog = "", schema = "PROYECTO")
@NamedQueries({
    @NamedQuery(name = "Carro.findAll", query = "SELECT c FROM Carro c"),
    @NamedQuery(name = "Carro.findByPlaca", query = "SELECT c FROM Carro c WHERE c.placa = :placa"),
    @NamedQuery(name = "Carro.findByMarca", query = "SELECT c FROM Carro c WHERE c.marca = :marca")})
public class Carro implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "PLACA", nullable = false)
    private Integer placa;
    @Basic(optional = false)
    @Column(name = "MARCA", nullable = false, length = 100)
    private String marca;
    @JoinColumn(name = "UNIDAD_ORGANIZACIONAL", referencedColumnName = "CODIGOUNIDAD")
    @ManyToOne(fetch = FetchType.EAGER)
    private Unidadorganizacional unidadorganizacional;
    @JoinColumn(name = "TRANSPORTET_RE_IDRECURSO", referencedColumnName = "ID_TRANSPORTE")
    @ManyToOne(fetch = FetchType.EAGER)
    private Transporteterrestre transporteterrestre;
    @JoinColumn(name = "RECURSOS_IDRECURSO", referencedColumnName = "IDRECURSO", nullable = false)
    @ManyToOne(optional = false, fetch = FetchType.EAGER)
    private Recursos recursos;

    public Carro() {
    }

    public Carro(Integer placa) {
        this.placa = placa;
    }

    public Carro(Integer placa, String marca) {
        this.placa = placa;
        this.marca = marca;
    }

    public Integer getPlaca() {
        return placa;
    }

    public void setPlaca(Integer placa) {
        this.placa = placa;
    }

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public Unidadorganizacional getUnidadorganizacional() {
        return unidadorganizacional;
    }

    public void setUnidadorganizacional(Unidadorganizacional unidadorganizacional) {
        this.unidadorganizacional = unidadorganizacional;
    }

    public Transporteterrestre getTransporteterrestre() {
        return transporteterrestre;
    }

    public void setTransporteterrestre(Transporteterrestre transporteterrestre) {
        this.transporteterrestre = transporteterrestre;
    }

    public Recursos getRecursos() {
        return recursos;
    }

    public void setRecursos(Recursos recursos) {
        this.recursos = recursos;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (placa != null ? placa.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Carro)) {
            return false;
        }
        Carro other = (Carro) object;
        if ((this.placa == null && other.placa != null) || (this.placa != null && !this.placa.equals(other.placa))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entidades.Carro[placa=" + placa + "]";
    }

}
